package com.anxin.mybatisplus.service.impl;

import com.anxin.mybatisplus.domain.entity.Employee;
import com.anxin.mybatisplus.mapper.EmployeeMapper;
import com.anxin.mybatisplus.service.IEmployeeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 这个成只负责实现方法   数据库操作都放在   mapper层  或者   dao  (这个框架跳过dao层)
 *
 * IEmployee  的实现类  叫  IEmployeeServiceImpl
 * @Service 参考 EmployeeMapper  上的注释
 *  ServiceImpl 同上
 * @author anxinr
 */
@Service
public class IEmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements IEmployeeService  {
    @Autowired
    private EmployeeMapper employeeMapper ;
    @Override
    public List<Employee> getEmployeeByName() {
        /**plus使用方法
         * 查询和修改都有专用的类   Wrapper    查询 QueryWrapper   修改    UpdatedWrapper
         * 先  new 对象
         * 数据库字段
         * eq  name  =   admin
         * 还可以有其他操作
         * 例如 in   like   notlike   isnull  isnotnull
         *
         * this 或者是 employeeMapper里面封装了很多方法 基本上看一下就懂怎么用
         * */
        QueryWrapper<Employee> wrapper = new QueryWrapper<>();
        wrapper.eq("name","admin") ;

        /**第一种调用*/
//        List<Employee> list = this.list(wrapper);
        /**第二种调用*/
        List<Employee> list = employeeMapper.selectList(wrapper);
        return list;
    }

    @Override
    public void updateEmployee() {
        /**修改的方法
         * updateWrapper
         * 可以updateById这个方法
         *
         * 其他方法  删除  remove   新增  save
         * */
        Employee employee = this.getById(1L);
        employee.setName("anxinr");
        this.updateById(employee) ;
//        this.remove()
//        this.save()
    }
}
